Jannish Blog

「现代计算机图形学入门」几何

2022/10/30

「现代计算机图形学入门」几何

1. 几何表示

隐式:点与点之间满足的关系,如 球体方程:\(x^2+y^2+z^2=1\)\(f(x,y,z)=0\)

缺点:很难知道几何长啥样;优点:容易判定一个是否在表面上/内/外;

如:代数方程、构造立体几何法(Constructive Solid Geometry,通过简单几何做运算)、距离函数(SDF)、分形(Fractals 自相似)

显式:所有点直接给出,或者通过参数映射的方法。如 \(f:R^2 \rightarrow R^3; (u,v) \rightarrow (x,y,z)\)

缺点:判断点在不在表面上/内/外很难;优点:知道所有的点;

如:点云、多边形网格(Polygon Mesh)、obj文件等。

根据问题的需要选择表示方法!

应用:Camera path、Vector Fonts

2. 曲线

2.1 Bezier曲线

性质: (1)Bezier曲线起点在 \(p_0\),终点在 \(p_3\) 上;

(2)Bezier曲线在首位端点处的切向量是首尾边的 \(n\) 倍;

(3)仿射变换性质:对控制点做仿射变换后的Bezier曲线还是一样;

(仿射变换是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间)

(4)凸包性:Bezier曲线一定在控制点形成的凸包内;

2.2 de Casteljau Algorithm

\(b_0^1(t) = (1-t)b_0 + tb_1\) \(b_1^1(t) = (1-t)b_1 + tb_2\) \(b_0^2(t) = (1-t)b_0^1 + tb_1^1\)

\(b_0^2(t)=(1-t)^2b_0+2t(1-t)b_1+t^2b_2\)

2.3 通用代数形式

2.4 逐段的Bezier曲线

习惯用每四个点确定一个Bezier曲线、

而如何使分段Bezier曲线连续?即上一段曲线的的终止点作为新曲线的起始点,

上一段曲线的终止切向量的取反作为新曲线的起始切向量。

\(C^0\) 连续:只要两段曲线起始、终止点在一起。

\(C^1\) 连续:两端曲线起始、终止切线连续。

3. 曲面

3.1 Bezier曲面

可视化三次Bezier曲线

如何表示Bezier曲面上的一个点?

用一个(u,v)坐标,u 控制四个Bezier曲线运动的过程(即时间t), v 控制运动的Bezier曲线的运动的过程。

3.2 网格操作:几何处理

网格细分、网格简化、网格正规化(不出现特别尖、长的三角形)

3.2.1 网格细分(Mesh Subdivision / upsampling)

细分是要:1. 分出更多的三角形;2. 让这些三角形的位置发生一点变化,使得形状更光滑些;

Loop Subdivision

第一步,将每个三角形分成四个;

第二步,对新的顶点和旧的顶点分别移动位置让模型变得更加光滑;

Catmull-Clark Subdivision(General Mesh)

每一个细分步骤:

  • 在每个面里取一个点
  • 在每个边上取其中点
  • 连接所有顶点

只要在一个非四边形内点上一个点,由于要和它的其他变相连,这个点就是奇异点(点的度不为4)

也就是说,非四边形面在一次细分之后,都会变成奇异点(不再存在非四边形面),再次细分后奇异点不会再增加。

3.2.2 网格简化(Mesh Simplification/downsampling)

edge collapsing(边坍缩)

思想:找到一条边,边有两个顶点,然后一捏,这个边就不存在了。

需要捏哪些边? \(\rightarrow\) 方法:Quadric Error Metrics(二次误差度量)

3.2.3 网格正规化(Mesh Regularization)

CATALOG
  1. 「现代计算机图形学入门」几何
    1. 1. 几何表示
    2. 2. 曲线
      1. 2.1 Bezier曲线
      2. 2.2 de Casteljau Algorithm
      3. 2.3 通用代数形式
      4. 2.4 逐段的Bezier曲线
    3. 3. 曲面
      1. 3.1 Bezier曲面
      2. 3.2 网格操作:几何处理
        1. 3.2.1 网格细分(Mesh Subdivision / upsampling)
        2. 3.2.2 网格简化(Mesh Simplification/downsampling)
        3. 3.2.3 网格正规化(Mesh Regularization)